The present invention relates to methods and apparatus for managing a shared memory in a multi-processor system in which portions of the memory may be reserved.
In recent years, there has been an insatiable desire for faster computer processing data throughputs because cutting-edge computer applications involve real-time, multimedia functionality. Graphics applications are among those that place the highest demands on a processing system because they require such vast numbers of data accesses, data computations, and data manipulations in relatively short periods of time to achieve desirable visual results. These applications require extremely fast processing speeds, such as many thousands of megabits of data per second. While some processing systems employ a single processor to achieve fast processing speeds, others are implemented utilizing multi-processor architectures. In multi-processor systems, a plurality of sub-processors can operate in parallel (or at least in concert) to achieve desired processing results.
In some existing multi-processor systems a plurality of parallel processors may use a shared memory in to store data. Memory management techniques are employed to prevent allocation of areas that are already being used and to permit allocation of unused areas. The conventional approach to manage the allocation of the shared memory involves a managing processor as an arbiter of the memory areas. This approach removes autonomy from the parallel processors and, therefore, decreases processing efficiency in some instances.